package org.example.demo1.dto; // 包路径已更正

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;
import java.util.Collections; // 导入 Collections 类
import java.util.List;

/**
 * 命名空间下的 Jaeger 追踪监控数据传输对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class NamespaceJaegerMetricsDto {
    private String namespace;
    private long totalTracesInNamespace; // 该命名空间下的总追踪数
    private long errorTracesInNamespace; // 该命名空间下的错误追踪数
    private boolean expanded = false; // 前端控制展开状态，后端可以初始化为false
    private List<JaegerServiceMetricsDto> services; // 该命名空间下的服务列表

    private Instant lastUpdate; // 最后更新时间

    // 用于返回空的默认值
    public static NamespaceJaegerMetricsDto empty(String namespaceName) {
        return new NamespaceJaegerMetricsDto(namespaceName, 0, 0, false, Collections.emptyList(), Instant.now());
    }
}